#ifndef EVENT_H
#define EVENT_H

#include <string>
#include <vector>

class Event
{
public:

};

class FiledropEvent : public Event
{
    public:
        std::vector<std::string> filenames;
        void reset()
        {
            filenames.clear();
        }
};

class ResizeEvent : public Event
{
public:
    int width;
    int height;

    ResizeEvent()
    : width(0)
    , height(0)
    {
    }

    void reset()
    {
        width = 0;
        height = 0;
    }
};

class KeyEvent : public Event
{
public:
    enum KeyCode
    {
        KEY_a,
        KEY_d,
        KEY_f,
        KEY_h,
        KEY_q,
        KEY_r,
        KEY_v,
        KEY_x,
        KEY_y,
        KEY_SPACE,
        KEY_LEFT,
        KEY_RIGHT,
        KEY_UP,
        KEY_DOWN,
        KEY_F1,
        KEY_F2,
        KEY_F3,
        KEY_F4,
        KEY_F5,
        KEY_F6,
        KEY_F7,
        KEY_F8,
        KEY_F9,
        KEY_F10,
        KEY_F11,
        KEY_F12,
        KEY_NONE
    };
    
    KeyEvent()
    : pressed(true)
    , keycode(KEY_NONE)
    {
    }

    bool    pressed;
    KeyCode keycode; 
};

#endif
